home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Cream of the Crop 1
/
Cream of the Crop 1.iso
/
PROGRAM
/
DBVGAL17.ARJ
/
DEMOS.ARJ
/
VESAINFO.C
< prev
next >
Wrap
C/C++ Source or Header
|
1992-01-26
|
2KB
|
67 lines
#include <stdlib.h>
#include <stdio.h>
#include <dos.h>
#include <string.h>
#include "vesa.h"
char *header0 = "VESAINFO v2.0a\n";
char *header1 = "The following VESA modes are supported: ";
void main(void)
{
int i;
char ts[2];
printf("%s%s",header0,header1);
/* Check if VESA BIOS is present */
if (isVESA() == 0) {
printf("\n...Error: Cannot locate VESA BIOS\n");
exit(1);
}
/* Loop over modes, displaying info for each */
for (i = 0; Vinfo.modeptr[i] != EOF; i++) {
/* Display mode number */
printf("\n %4Xh",Vinfo.modeptr[i]);
printf(" (%s):", Vinfo.modeptr[i] & 0x0100 ? "VESA" : " OEM");
if (getVESAinfo(Vinfo.modeptr[i]) == NULL) {
printf("\nOops. Couldn't retrieve mode info.\n");
exit(2);
}
/* Display mode type (text or graphics) */
printf(" %s ",(Vminfo.modeattr & 0x0010) ? "Graph":"Text ");
switch (Vminfo.WindowAattr) {
case 0 : strcpy(ts,"NA"); break;
case 3 : strcpy(ts,"RO"); break;
case 5 : strcpy(ts,"WO"); break;
case 7 : strcpy(ts,"RW"); break;
default: strcpy(ts,"??"); break;
}
printf("WA:%s ",ts);
switch (Vminfo.WindowBattr) {
case 0 : strcpy(ts,"NA"); break;
case 3 : strcpy(ts,"RO"); break;
case 5 : strcpy(ts,"WO"); break;
case 7 : strcpy(ts,"RW"); break;
default: strcpy(ts,"??"); break;
}
printf("WB:%s ",ts);
printf("Gran: %ik Size: %ik", Vminfo.granularity, Vminfo.size);
/* Display mode resolution */
if (Vminfo.modeattr & 0x0002) {
printf(" %4d x%4d ", Vminfo.XPixels, Vminfo.YPixels);
/* Display number of colors */
if (Vminfo.modeattr & 0x0008)
printf(" %3d Colors", 0x0001 << (Vminfo.bits));
else
printf(" Mono");
} else
printf(" N/A\n");
}
exit(0);
}